package Solution151_175;

import java.util.HashMap;
import java.util.Map;

public class Solution171 {
    public int titleToNumber1(String s) {
        Map<Character,Integer> keyMap=new HashMap<>();
        keyMap.put('A',1);
        keyMap.put('B',2);
        keyMap.put('C',3);
        keyMap.put('D',4);
        keyMap.put('E',5);
        keyMap.put('F',6);
        keyMap.put('G',7);
        keyMap.put('H',8);
        keyMap.put('I',9);
        keyMap.put('J',10);
        keyMap.put('K',11);
        keyMap.put('L',12);
        keyMap.put('M',13);
        keyMap.put('N',14);
        keyMap.put('O',15);
        keyMap.put('P',16);
        keyMap.put('Q',17);
        keyMap.put('R',18);
        keyMap.put('S',19);
        keyMap.put('T',20);
        keyMap.put('U',21);
        keyMap.put('V',22);
        keyMap.put('W',23);
        keyMap.put('X',24);
        keyMap.put('Y',25);
        keyMap.put('Z',26);
        int result=0;
        for(int i=0;i<s.length();i++){
            char c=s.charAt(i);
            result=result*26+keyMap.get(c);
        }
        return result;
    }

    public int titleToNumber(String s) {
        int res = 0;
        char[] titleCharArray = s.toCharArray();
        for(char c : titleCharArray){
            int num = c -'A' + 1; // 得出26个字母中当前字母对应的数值
            res = 26 * res + num; // 每26个数向前进1位
        }
        return res;
    }
}
